home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / objovr.zip / LOOKOBJ.PAS < prev    next >
Pascal/Delphi Source File  |  1993-01-04  |  1KB  |  52 lines

  1. {$O+}
  2.  
  3. (*
  4. 01/10/90  Fixed bug in the "overlay detector" 
  5.           Ron Schuster [76666,2322]
  6. *)
  7.  
  8. unit LookOBJ;
  9.  
  10. interface
  11.  
  12.   function OBJitized ( I : integer ) : real;
  13.   { Returns Ith component of OBJitized data array. }
  14.  
  15. implementation
  16.  
  17. uses
  18.   OBJTypes;
  19.  
  20. var
  21.   ThisUnitIsOverlayed : boolean;
  22.  
  23. type
  24.   OBJitizedDataPtr    = ^ OBJitizedDataType;
  25.   OBJitizedDataPtrPtr = ^ OBJitizedDataPtr;
  26.  
  27.   procedure OBJitizedDataLink;
  28.   external;
  29.   {$L OBJitize.OBJ }
  30.  
  31.   function OBJitizedData : OBJitizedDataPtr;
  32.   begin
  33.     if ThisUnitIsOverlayed then
  34.       OBJitizedData := OBJitizedDataPtrPtr (
  35.                          succ ( longint ( @ OBJitizedDataLink ) ) ) ^
  36.     else
  37.       OBJitizedData := @ OBJitizedDataLink;
  38.   end;
  39.  
  40.   function OBJitized ( I : integer ) : real;
  41.   begin
  42.     OBJitized := OBJitizedData ^ [ I ];
  43.   end;
  44.  
  45. type
  46.   WordPtr = ^ word;
  47. begin
  48.   ThisUnitIsOverlayed :=   WordPtr (    $FFFF0000
  49.                                         and longint ( @ OBJitizedDataLink ) ) ^
  50.                          = $3FCD;
  51.   writeln ( 'This unit is overlayed: ', ThisUnitIsOverlayed );
  52. end.